// Copyright Epic Games, Inc. All Rights Reserved.

#include "LyraAttributeSet.h" // 包含头文件

#include "AbilitySystem/LyraAbilitySystemComponent.h" // 包含LyraAbilitySystemComponent头文件

#include UE_INLINE_GENERATED_CPP_BY_NAME(LyraAttributeSet) // 包含内联生成的C++代码

class UWorld; // 前向声明UWorld类

/**
 * ULyraAttributeSet类的构造函数
 */
ULyraAttributeSet::ULyraAttributeSet()
{
}

/**
 * 获取世界上下文
 * @return 返回关联的UWorld对象
 */
UWorld* ULyraAttributeSet::GetWorld() const
{
	const UObject* Outer = GetOuter(); // 获取外部对象
	check(Outer); // 检查外部对象是否有效

	return Outer->GetWorld(); // 返回外部对象的世界
}

/**
 * 获取LyraAbilitySystemComponent组件
 * @return 返回转换后的ULyraAbilitySystemComponent指针
 */
ULyraAbilitySystemComponent* ULyraAttributeSet::GetLyraAbilitySystemComponent() const
{
	return Cast<ULyraAbilitySystemComponent>(GetOwningAbilitySystemComponent()); // 转换并返回拥有的能力系统组件
}